package dao

import (
	"time"
)

// 这是 CmsTopic 的全局公开dao对象，被service层调用!
var CmsTopicDao = cmsTopicDao{}

// 这是 cms_topic表 的实体类
type CmsTopic struct {
	AttendCount    int32     `json:"attend_count" form:"attend_count" v:"attend_count"`          // 参与人数
	AttendType     string    `json:"attend_type" form:"attend_type" v:"attend_type"`             // 参与方式
	AttentionCount int32     `json:"attention_count" form:"attention_count" v:"attention_count"` // 关注人数
	AwardName      string    `json:"award_name" form:"award_name" v:"award_name"`                // 奖品名称
	CategoryId     int64     `json:"category_id" form:"category_id" v:"category_id"`             // 这是一个逻辑外键,关联cms_topic_category(id)
	Content        string    `json:"content" form:"content" v:"content"`                         // 话题内容
	CreateTime     time.Time `json:"create_time" form:"create_time" v:"create_time"`
	EndTime        time.Time `json:"end_time" form:"end_time" v:"end_time"`
	Id             int64     `json:"id" form:"id" v:"id"`
	Name           string    `json:"name" form:"name" v:"name"`
	ReadCount      int32     `json:"read_count" form:"read_count" v:"read_count"`
	StartTime      time.Time `json:"start_time" form:"start_time" v:"start_time"`
}

// 注意:这是 CmsTopic 的私有dao对象，只能在dao层内使用!
type cmsTopicDao struct {
	InsertTemplate func(arg CmsTopic) (int64, error)                               //插入一条记录
	UpdateTemplate func(arg CmsTopic) (int64, error)                               //更新一条记录
	DeleteTemplate func(id int64) (int64, error)                                   `args:"id"`                         //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (CmsTopic, error)                                `args:"id"`                         //根据传入的主键获取一条记录
	List           func(keyword string, pageNum, pageSize int) ([]CmsTopic, error) `args:"keyword,page_num,page_size"` //模糊分页查询
}

/*
// 这是 cms_topic 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type CmsTopicPostman struct {
attend_count
attend_type
attention_count
award_name
category_id
content
create_time
end_time
id
name
read_count
start_time

}*/

// 这是 cms_topic 表的批量请求参数
type CmsTopicReq struct {
	List []CmsTopic `json:"list" form:"list"`
}
